package com.iking.housekeeping.dao.menu;

import java.util.List;
import java.util.Set;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.iking.housekeeping.entity.menu.SysMenu;
import com.iking.housekeeping.httpbean.menu.resbean.ReturnSysMenu;

/**
 * 系统菜单Mapper
 * @author 秦甫杰
 *
 */
@Mapper
public interface SysMenuMapper {
	
	/**
	 * 根据id删除
	 * @param fId
	 * @return
	 */
    int deleteByPrimaryKey(String fId);
    /**
     * 插入菜单
     * @param record
     * @return
     */
    int insert(SysMenu record);
    
    /**
     * 可插入空值试插入菜单
     * @param record
     * @return
     */
    int insertSelective(SysMenu record);
    
    /**
     * 根据id查询菜单
     * @param fId
     * @return
     */
    SysMenu selectByPrimaryKey(String fId);
    
    /**
     * 根据id更新用户
     * @param record
     * @return
     */
    int updateByPrimaryKeySelective(SysMenu record);
    
    /**
     * 根据id更新用户
     * @param record
     * @return
     */
    int updateByPrimaryKey(SysMenu record);

    /**
     * 查询全部菜单
     * @return
     */
	List<ReturnSysMenu> selectAll();
	
	/**
	 * 查询一级菜单
	 * @return
	 */
	List<SysMenu> selectFirstMenu();
	
	/**
	 * 查询子菜单
	 * @param pCode
	 * @return
	 */
	List<SysMenu> selectByPCode(String pCode);
	
	/**
	 * 根据code查询菜单
	 * @param menuCode
	 * @return
	 */
	List<SysMenu> selectMenuByCode(Set<String> menuCode);
	
	/**
	 * 根据菜单编号查询菜单
	 * @param code
	 * @return
	 */
	SysMenu selectByPrimaryKeyByCode(String code);
	
	/**
	 * 根据fCode模糊查询所有的菜单
	 * @param fcode
	 * @return
	 */
	List<SysMenu> selectSysMenuByFCode(@Param("fcode") String fcode);
	
	/**
	 * 通过菜单名称查看信息
	 * @param name
	 * @return
	 */
	SysMenu selectSysMenuByName(String name);
	
	/**
	 * 根据id查询所有菜单
	 * @param fids
	 * @return
	 */
	List<SysMenu> selectSysMenuByFId(List<String> roleIds);
}